<template>
    
</template>
<script>
//函数自定义返回空的Object实例对象
 //Fun1是 Function 的实例对象，Fun1.__proto__   
var Fun1 = new Function();
Fun1.__proto__;
function Fun(){//创建函数对象,
// this.prototype = {};
    console.log(Fun.prototype,"Hello Vue!");
}
Fun.__proto__;
Fun.prototype.lxy = function(){
    console.log("Hello lxy!");   
}
// var f = new Fun();//通过实例对象调用__proto__原型对象属性
// f.lxy();
//实例对象的构造函数 === 原型对象的函数
// console.log(f.__proto__ === Fun.prototype)

var d = new Date();
var dd = d.getTime();
// console.log(Date.prototype,",",dd);
//函数都有一个显示原型属性和隐示原型属性,object只有__proto__属性
// console.log(Object.prototype instanceof Object);

// console.log(Function.prototype instanceof Object);

// console.log(Function.__proto__ === Function.prototype);

function Fun2(){

}
Fun2.prototype.num = 21;
//prototype通过实例指向获取，而不是直接存在
var fun2 = new Fun2();
// console.log(fun2.num)
fun2.num = 22;
//原型链查找属性，在对象中给数据设置值
// console.log(fun2.num,fun2.__proto__.num,fun2)

//业务模式
function person(name,age){
    this.name = name;
    this.age = age
}
//通用函数使用原型定义
person.prototype.setName = function(name){
    this.name = name;
}

var p1 = new person("lxy",21);
p1.setName("lucy");
console.log(p1);
console.log(p1.name," , ",p1.age);

// var p2 = new person("lxy2",22);
// p2.setName("lxy3");
// console.log(p2);
</script>